package proycompalex1;
import java.io.*;
/**
*los errores son los siguientes:
*<table style="border:1px"><tr><td>1</td><td>Comienzo de lexema invalido</td></tr><tr><td>2</td><td>Número mal formado</td></tr>
*       <tr><td>3</td><td>Char mal formado</td></tr><tr><td>4</td><td>String mal formado</td></tr>
*       <tr><td>5</td><td>Expresion Condicional mal formada. se esperaba un '&'</td><tr><tr><td>6</td><td>Operador relacional mal formado. se esperaba un '='</td></tr>
*       <tr><td>7</td><td>Identificador mal formado</td></tr><tr><td>8</td><td>Comentario mal formado</td></tr>
*       <tr><td>9</td><td>Expresion Condicional mal formada. se esperaba un '|'</td></tr>
*</table>
*/
public class errorLexico extends Exception{
    private static String msgSegunError(int nro)
    {
        String msg="";
        switch (nro){
            case 1:{
                msg="Caracter Extraño";
            break;
            }
            case 2:{
                msg="Número mal formado";
            break;
            }
            case 3:{
                msg="Char mal formado";
            break;
            }
            case 4:{
                msg="String mal formado";
            break;
            }
            case 5:{
                msg="Expresion Condicional mal formada. se esperaba un '&'";
            break;
            }
            case 6:{
                msg="Identificador mal formado";
            break;
            }
            case 7:{
                msg="Comentario mal formado";
            break;
            }
            case 8:
                msg="Expresion Condicional mal formada. se esperaba un '|'";
        }
        return msg;
    }
    @Override
    public void printStackTrace(PrintStream ps) {
        System.out.println(getMessage());
    }
    public static String construirError(int nro, int linea) {
        String error="Nro Error: " + nro + "." +  msgSegunError(nro) + ".Nro de Linea: "+ linea;
        return (error);
    }

/**
*Crea una nueva instancia de ErrorLexico
*@param tipo
*/
    public errorLexico(String tipo) {
         super("ERROR LEXICO =====>  "  + tipo);
    }
}
